﻿using System.Collections.Generic;

namespace Colonisator.Classes
{
    /// <summary>
    /// Un tour de jeu est définit comme suit :
    ///  -> un ID
    ///  -> une liste des joueurs participants (donc, ceux en tours d'attentes sont exclus)
    ///  -> une Economie
    ///  -> une liste d'actions
    /// </summary>
    public class Tour
    {
        public int IDTour { get; set; }
        /// <summary>
        /// Enumère les joueurs actifs (c'est-à-dire n'attendant pas de tour)
        /// </summary>
        public List<Joueur> JoueursInActifs { get; set; }
        /// <summary>
        /// Liste des actions en cours concernant ce tour
        /// </summary>
        public List<Action> Actions { get; set; }
        /// <summary>
        /// Indique si ce tour est le tour courant de la partie
        /// </summary>
        public bool EstTourCourant { get; set; }
        /// <summary>
        /// Donne le joueur actif
        /// </summary>
        public Deroulement DeroulementTour { get; set; }

        public Tour()
        {
            JoueursInActifs = new List<Joueur>();
            Actions = new List<Action>();
            DeroulementTour = new Deroulement();
        }
    }

    /// <summary>
    /// Cette classe gère les phases d'un tour, pour un joueur donné
    /// </summary>
    public class Deroulement
    {
        public Joueur JoueurActif { get; set; }
        public Phase PhaseCourante { get; set; }
        
        public Deroulement()
        {
            PhaseCourante = Phase.Action;
        }
    }

    /// <summary>
    /// Enumère les différentes phase d'un tour pour un joueur
    /// </summary>
    public enum Phase
    {
        Action = 0,
        Décision = 1,
        Tirage = 2,
        Navigation = 3,
        Résolution = 4
    }

}
